iT邦幫忙

2022 iThome 鐵人賽

DAY 26
0
自我挑戰組

Python 學習整理系列 第 26

Day 26. Flask v.s. Django

  • 分享至 

  • xImage
  •  

Flask 是什麼

https://ithelp.ithome.com.tw/upload/images/20220929/20150083CPs9hEKXH6.png
(圖片來源:https://zh.wikipedia.org/zh-tw/Flask)

  • Flask 可以被稱為【微框架】,因為它擁有基礎的核心,並能擴充其他功能。Flask沒有預設使用的資料庫、表單驗證工具。然而,Flask保留了擴增的彈性,可以用Flask-extension 加入這些功能:ORM、表單驗證工具、檔案上傳、各種開放式身分驗證技術。

  • 由於Flask 本身不支援直接對資料庫進行操作,Flask-SQLAlchemy解決了這問題,它適度的包裝了SQLAlchemy。透過這個套件,可以簡化 Flask 開發人員對資料庫的操作。


Django 是什麼?

https://ithelp.ithome.com.tw/upload/images/20220929/20150083d904tm676M.png
(圖片來源:https://www.edureka.co/blog/django-tutorial/)

  • Django是一個開放原始碼的Web應用框架,由Python寫成。採用了MTV(model–template–views)的軟體設計模式,即模型(Model),視圖(View)和模板(Template)

Django 架構

  • Django 遵循 MVC - MVT 架構

MVC(Model-View-Controller)

https://ithelp.ithome.com.tw/upload/images/20220929/20150083D0LUdZ2hd8.png
(圖片來源:https://www.edureka.co/blog/django-tutorial/)

  • MVC 模式是 1978 年由 Trygve Reenskaug 提出的軟體架構框架,便於解耦、重複利用。

M (Model,模型):

  • 模型用於存儲和維護您的數據。它是定義數據庫的後端。

V (View,畫面):

  • 在 Django 模板中,畫面在 html 中。View 是關於演示的,它根本不知道後端。無論用戶看到什麼,它都被稱為畫面。

C (Controller,控制器):

  • 控制器是一個與模型和視圖交互的業務邏輯。

MTV (Model-Template-View)

https://ithelp.ithome.com.tw/upload/images/20220929/20150083I3dGBczX4R.png
(圖片來源:https://www.edureka.co/blog/django-tutorial/)

  • 在上圖中,模板是您的前端,它將與視圖交互,模型將用作後端。 然後畫面將訪問模型和模板並將其映射到 url。之後,Django 扮演控制器的角色並將 其提供給用戶。

M (Model,模型)

  • 模型用於存儲和維護您的數據。它是定義數據庫的後端。

T (Template,模板)

  • 生成頁面展現給使用者的部分,也就是我們看見的前端 HTML、CSS、JavaScript 的部分。

C (Controller,控制器)

  • 如果要對應的話為 Django 本身

參考資料:
Django Tutorial – Web Development with Python Django Framework

比較 MVC 與 Django 的 MTV

維基百科-Django

維基百科-Flask

Django vs Flask - Which framework is most preferred by developers? | TechGig

Top 100+ Python Interview Questions and Answers For 2022

python - is Flask an MVC or MTV? - Stack Overflow

[Flask教學] Flask-SQLAlchemy 資料庫連線&設定入門 (一) | Max行銷誌

Python Web Flask — 使用SQLAlchemy資料庫 | by Sean Yeh | Python Everywhere -from Beginner to Advanced | Medium


上一篇
Day25.什麼是 garbage collection
下一篇
Day 27. split() v.s. split(" ")
系列文
Python 學習整理30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言